home *** CD-ROM | disk | FTP | other *** search
- Path: nntp.teleport.com!sschaem
- From: sschaem@teleport.com (Stephan Schaem)
- Newsgroups: comp.sys.amiga.programmer,comp.sys.amiga.games,alt.sys.amiga.demos,comp.sys.amiga.misc
- Subject: Re: AB3D II beats Quake....
- Followup-To: comp.sys.amiga.programmer,comp.sys.amiga.games,alt.sys.amiga.demos,comp.sys.amiga.misc
- Date: 3 Apr 1996 07:11:45 GMT
- Organization: Teleport - Portland's Public Access (503) 220-1016
- Message-ID: <4jt8bh$a70@nadine.teleport.com>
- References: <DosA8o.17B@info.uucp> <6538.6658T1031T2526@mbox.vol.it> <4jgn4o$l2b@hell.team17.com> <4jk515$q3l@nadine.teleport.com> <4jkdpu$1o6@hell.team17.com> <4joj14$ghj@nadine.teleport.com> <4js275$98s@hell.team17.com>
- NNTP-Posting-Host: julie.teleport.com
- X-Newsreader: TIN [version 1.2 PL2]
-
- Stefan Boberg (boberg@team17.com) wrote:
- : sschaem@teleport.com (Stephan Schaem) wrote:
-
- : >Stefan Boberg (boberg@team17.com) wrote:
- : >: sschaem@teleport.com (Stephan Schaem) wrote:
-
- : >: > The part that matter are in ASM...
-
- : >: In Quake's case, only the scan-conversion, and some other small
- : >: bits. Makes perfect sense.
-
- : > I think they should do more then just the scan conversion...
-
- : Such as?
-
- Clipping, geometry transform, bsp tree traversal, visibility test
-
- : > Right now ID is still working on the game, my guess is by the time
- : > its released they will have rewriten more C part on the rendering engine
- : > in 486 and pentium assembly.
-
- : I'm not sure about that. In DOOM, very little was in ASM.
-
- This just mean Doom pass most of its time in very little code.
-
- : > Something that I recall is that ID said quake was slow on 486 because
- : > it uses floating point optimization for the pentium, and told they them
- : > would optimize it for the 486. now, was this optimization planeed as a
- : > compiler switch? :)
-
- : Yes you can do that. You simply use in-line assembly macros for
- : fixed-point multiplies / divides etc. I have such a system and it
- : works fine. Just change a switch (such as '-DFIXED_MATH') on the
- : command line and all code will use fixed-point.
-
- Do you get good performance from this? Also I often find myself
- otimizjng the fix point setting. not alway 16:16 or 8:8, but maybe
- 8:24, 4:28 ... I prefere to go with 'library' set of function, VS
- macro. I remmeber some old stuff of mine (My first 3d experiment)
- that used macro to provide math*.library VS direct 6888x assembly
- with a flip of a flag, but I find this ugly.
-
- : > where those floating point operation done during
- : > the scanline rasterization (bad pratice).
-
- : It's not bad practice. It's clever - on the Pentium, at least. Can
- : you figure out why it's done?
-
- Nope... because the scanline loop use no MUL. and FPU add are slower
- and also you cant use FPU register directly as index or else
- so FPU make sense in the setup when fmul are faster then imul and you
- dont need to convert from ftoi all the time, otherwise not.
-
- Remember its about you 'cliaming' ID only have the scan conversion in asm
- and ID 'claiming' that quake is slow on 486 because it uses float.
-
- : > My guess is that if really
- : > float slow down quake on 486 is that otherpart of the engine need to
- : > be optimized aside the scan-conversion.
-
- : Not really.
-
- Then tell me why 1 polygon fly VS 100 ? The same number of pixel are
- rasterized.... The inner scan loop is executed the same number of time
- but still with 1 polygon showing quake is a few fold faster...
-
- : > BTW do you see scan-conversion as the scan rendering loop or the
- : > full rasterizing routine?
-
- : Taking polygon structures (vertices and edges) and turning them into
- : pixels.
-
- does the edge include slope information? if so no reason to see a float
- operation in the 'scan-conversion' loop.
-
- I personaly used mix code... float+int with various fixpoint (float
- only if the FPU is worth it)
-
- Stephan
-